///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// Στο παρόν περιέχονται δομές και διαδικασίες που αφορούν στο πρώτο κάθετο πάνελ εργαλείων
// που βρίσκεται μεταξύ της περιοχής θαμώνων και τραπεζιών (kpanel). Αυτό το πάνελ περιέχει
// κυρίως εργαλεία που αφορούν περισσότερο στους παίκτες και στα τραπέζια και λιγότερο στο
// παιχνίδι.

Tsoxa.kpanel = {
	adamo: 1,	// τρέχουσα ομάδα εργαλείων
	omadaMax: 2,	// τελευταία ομάδα
	direction: 1,	// φορά αλλαγής εργαλείων
};

Tsoxa.kpanel.setup = function() {
	Tsoxa.kpanel.DOM = $('<div>').addClass('Vpanel').
	append(Tsoxa.kpanel.enalagiButtonDOM = Tsoxa.panel.enalagiButton(Tsoxa.kpanel)).
	append(Tsoxa.kpanel.metakinisiButtonDOM = Tsoxa.panel.metakinisiButton(Tsoxa.kpanel)).
	append(Tsoxa.panel.arxikiButton(Tsoxa.kpanel, 1)).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Ομάδα 1
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').
	data('omada', 1).
	attr({
		src: Client.server + 'ikona/panel/misc/kafenio.png',
		title: 'Επιστροφή στο καφενείο',
	}).
	on('click', function(e) {
		e.stopPropagation();
		self.close();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').data('omada', 1).attr({
		src: Client.server + 'ikona/panel/misc/resize.gif',
		title: 'Επαναδιάταξη περιοχών',
	}).
	on('click', function(e) {
		var diastasi, whtl = [];

		Tsoxa.inputRefocus(e);
		diastasi = Client.session.tsoxaDiastasi;
		if (diastasi) {
			whtl= Client.session.tsoxaDiastasi.split(':');
			if (whtl.length != 6) diastasi = null;
		}

		if (!diastasi) {
			whtl[0] = $(window).width();
			whtl[1] = $(window).height();

			if (window.screenY !== undefined) whtl[4] = window.screenY;
			else if (window.screenTop !== undefined)  whtl[4] = window.screenTop;
			else whtl[4] = 80;

			if (window.screenX !== undefined) whtl[5] = window.screenX;
			else if (window.screenLeft !== undefined) whtl[5] = window.screenLeft;
			else whtl[5] = 80;
		}

		whtl[2] = 200;
		whtl[3] = 568;
		diastasi = whtl[0] + ':' + whtl[1] + ':' + whtl[2] + ':' + whtl[3] + ':' + whtl[4] + ':' + whtl[5];
		Tsoxa.diastasiSave(diastasi);
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').data('omada', 1).attr({
		src: '../ikona/misc/viewFull.png',
		title: 'Αυτονόμηση τσόχας',
	}).
	data('check', function() {
		return !Tsoxa.flags.viewFull;
	}).
	on('click', function(e) {
		var ofelimoPos, tsoxaPos;

		ofelimoPos = Tsoxa.ofelimoDOM.offset();
		tsoxaPos = Tsoxa.trapeziDOM.offset();

		Tsoxa.flags.viewFull = true;
		Tsoxa.trapeziDOM.remove();
		Tsoxa.trapeziDOM = $('<div>').addClass('tsoxa_trapezi').siromeno({
			top: (tsoxaPos.top - ofelimoPos.top) + 'px',
			left: (tsoxaPos.left - ofelimoPos.left) + 'px',
		}).appendTo(Tsoxa.ofelimoDOM);

		Tsoxa.
		trapeziRefreshDOM().
		peristrofiDOM().
		kpanel.refresh();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').data('omada', 1).attr({
		src: '../ikona/misc/viewNormal.png',
		title: 'Επαναδέσμευση τσόχας',
	}).
	data('check', function() {
		return Tsoxa.flags.viewFull;
	}).
	on('click', function(e) {
		Tsoxa.flags.viewFull = false;
		Tsoxa.trapeziDOM.remove();
		Tsoxa.trapeziDOM = $('<div>').addClass('tsoxa_trapezi').appendTo(Tsoxa.tsoxaDOM);
		Tsoxa.
		trapeziRefreshDOM().
		kpanel.refresh();
		Client.fyi.kato();
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append($('<img>').
	data('omada', 1).
	attr({
		src: Client.server + 'ikona/panel/pexnidi/frog.png',
		title: 'Εμφάνιση/απόκρυψη φύλλων Ανατολής και Δύσης',
	}).
	data('check', function() {
		if (Debug.flagGet('striptiz')) return true;
		if (Kafenio.egoIsPektis()) return false;
		return true;
		//return Kafenio.egoPektis.pektisIsVip();
	}).
	on('click', function(e) {
		Tsoxa.inputRefocus(e);
		if (Tsoxa.flags.fanera23) {
			delete Tsoxa.flags.fanera23;
			Tsoxa.fila3DOM.css('display', 'none');
			Tsoxa.fila2DOM.css('display', 'none');
		}
		else {
			Tsoxa.flags.fanera23 = true;
			Tsoxa.fila3DOM.css('display', 'block');
			Tsoxa.fila2DOM.css('display', 'block');
		}
	})).

	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// Ομάδα 2
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	append(Panel.kinito(Tsoxa, Tsoxa.kpanel.omadaMax)).
	append(Panel.soundEntasi(Tsoxa, Tsoxa.kpanel.omadaMax)).

	append(Tsoxa.panel.arxikiButton(Tsoxa.kpanel, -1));
	Tsoxa.panel.oplismos(Tsoxa.kpanel);
	Tsoxa.kpanelDOM.empty().append(Tsoxa.kpanel.DOM);

}

Tsoxa.kpanel.metakinisi = function() {
	Tsoxa.kpanel.DOM.
	on('mousedown', function(e) {
		var
		x0 = e.pageX,
		theatesW = Tsoxa.theatesDOM.width();
		tsoxaW = Tsoxa.tsoxaDOM.width();
		pssW = Tsoxa.pssDOM.width();

		e.preventDefault();
		e.stopPropagation();

		Tsoxa.kpanel.DOM.css('cursor', 'move');
		Tsoxa.sekinisi = true;
		Tsoxa.kpanel.metakinisiButtonDOM.addClass('iconCandi');

		// Η διαδικασία της παρακολουθεί την κίνηση του δείκτη και τελειώνει με
		// το mouseup. Αυτά τα events τα παρακολουθούμε σε όλη την έκταση του
		// document και όχι μόνο στο πάνελ.

		$(document).off('mousemove mouseup').

		// Κατά την κίνηση του δείκτη υπολογίζουμε τη διαφορά κατά πλάτος σε σχέση
		// με την αρχική θέση και αυξομειώνουμε ανάλογα τις περιοχές.

		on('mousemove', function(e) {
			var w, dw;

			e.stopPropagation();
			sW = pssW;

			dw = e.pageX - x0;

			// Αν επιχειρείται μετακίνησης προς τα αριστερά, πρέπει να μειωθεί το
			// πλάτος της στήλης των παικτών και να αυξηθεί το πλάτος των τραπεζιών.

			if (dw <= 0) {
				w = theatesW + dw;
				if (w < 0) w = 0;
				dw = w - theatesW;

				pW = theatesW + dw;
				tW = tsoxaW - dw;
			}

			// Αλλιώς επιχειρείται μετακίνηση προς τα δεξιά, οπότε πρέπει να αυξηθεί
			// το πλάτος των παικτών και να μειωθούν τα τραπέζια και, ενδεχομένως,
			// το pss.

			else {
				w = tsoxaW - dw;
				if (w < 0) {
					tW = 0;
					pW = theatesW + tsoxaW;
					dw -= tsoxaW;

					w = pssW - dw;
					if (w < 0) {
						sW = 0;
						pW += pssW;
						dw = pssW;
					}
					else {
						pW += dw;
						sW -= dw;
					}
				}
				else {
					pW = theatesW + dw;
					tW = tsoxaW - dw;
				}
			}

			Tsoxa.theatesDOM.scrollSteno(pW).css('width', pW + 'px');
			Tsoxa.tsoxaDOM.css('width', tW + 'px');
			Tsoxa.pssDOM.children('.pssEnotita').scrollSteno(sW);
			Tsoxa.pssDOM.css('width', sW + 'px');
			Tsoxa.pss.inputWidthFix();
		}).
		on('mouseup', function(e) {
			e.stopPropagation();
			Tsoxa.kpanel.DOM.css('cursor', '');
			$(document).off('mousemove mouseoff');
			Tsoxa.kpanel.metakinisiButtonDOM.removeClass('iconCandi');
			if (Tsoxa.sekinisi) {
				Tsoxa.sekinisi = false;
				Tsoxa.diastasiSave();
			}
		});
	});
}

// Με την μέθοδο "refresh" επαναδιαμορφώνουμε το DOM element του πάνελ.
// Ως παράμετρο μπορούμε να περάσουμε την επιθυμητή ομάδα εργαλείων,
// αλλιώς εμφανίζεται η τρέχουσα ομάδα.

Tsoxa.kpanel.refresh = function(adamo) {
	if (adamo !== undefined) Tsoxa.kpanel.adamo = 1;
	Tsoxa.panel.refresh(Tsoxa.kpanel);
}
